package com.fujimana.rockincat.restree.annotation.rest;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Override {
	
	Class<?> value();
	
	Precedence precedence() default Precedence.BUILT_IN;
	
	public enum Precedence {
		
		BUILT_IN(0),
		
		FRAMEWORK(10),
		
		MOCK(20),
		
		APPLICATION(30),
		
		PATCH(40);
		
		private int value;
		
		private Precedence(int value) {
			this.value = value;
		}
		
		public int getValue() {
			return this.value;
		}
	}
}
